package leixingbiancheng.jianchaleichengyuan;
/**
 * 
 * @author Jin Jing
 * 
 * Class类有一组方法可以检查指定类型的构成部分：
 * 获得公共成员：
 * public Constructor[] getConsturctors()
 * public Field[] getFields()
 * public Method[] getMethods()
 * public Class[] getClasses()：获得嵌套的类型
 * 获得全部成员：
 * public Constructor[] getDeclaredConsturctors()
 * public Field[] getDeclaredFields()
 * public Method[] getDeclaredMethods()
 * public Class[] getDeclaredClasses()
 * 此外还有一类方法获得特定部分:
 * public Field getField(String name)
 * 
 * Field、Construct、Method类（不包括Class类！）都实现了Member接口，
 * 该接口对所有成员都共享的属性提供了三种方法：
 * Class getDeclaringClass()：返回该成员声明时所在类对应的对象。
 * String getName()
 * int getModifiers（）
 * 
 * Modifier类对所有的针对类型和成员的修饰符都按常量进行编码：
 * ABSTRACT、FINAL、INTERFACE、NATIVE、PRIVATE、PROTECTED、PUBLIC、STATIC、STRICT、SYNCHRONIZED、
 * TRANSIENT、VOLATILE。
 * 对每个 常量，都会有一个对应的查询方法isMod(int modifiers)：如Modifier.isPrivate(field.getModifiers()).
 * 
 * 
 * Method类中提供一种方法：
 * public Object invoke(Object onThis, Object[] args) throws(后面一些异常)
 * 当方法是非静态方法时，根据onThis对象来调用；当是静态方法时，onThis参数被忽略并且通常上都为null。
 * 
 * Class类的newInstance方法可创建该类型的一个实例，这个方法会调用类的无自变量构造函数，并返回
 * 新产生对象的引用。
 * 
 * 要想调用其他的构造函数，必须使用Class对象来得到相关的Constructor对象，
 * 并调用其上的newIstance(Object[] args)
 * 
 * Class.newInstance不能被用来穿件内部类的对象实例，因为编译器在所在内部类的构造函数参数表中都
 * 增加了一个指向外部包装对象的引用。
 * 
 * AccessibleObject类可以启用或禁用对语言级访问修饰符的检查能力。Field，Constructor，Method都是其子类
 * 
 * 数组的创建方法：
 * Array类中的静态方法：
 * public Object newInstance(Class componentType, int length)
 * public Object newInstance(Class componentType, int[] dimensions)（多维数组）
 * 
 * 
 * 
 */
public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

	}

}
